// "Copyright [2021] <Copyright Shengkai Lin>"

#ifndef CLUSTER_TASK_SCHEDULER_TASK_GENERATOR_TASK_GENERATER_H_
#define CLUSTER_TASK_SCHEDULER_TASK_GENERATOR_TASK_GENERATER_H_

#include<iostream>
#include<random>
#include<ctime>
#include <vector>
#include "cluster/basic/ai_sim.h"

namespace ai_sim {

class TaskGenerator : public omnetpp::cSimpleModule{
 private:
       TaskType tmp_tasktype;
       int maxnumGpus;
       int maxnumBatches;
       int numGpus;
       int numBatches;
       int modelsize;
       double compute_time;
       double task_interval;
       int total_tasks;
       int numJobs;
      //  CentralController *controller;

 public:
        void initialize() override;
        void handleMessage(omnetpp::cMessage *msg) override;
        Task gen_fully_utilized_task();
        Task gen_required_tasks();
};
}  // namespace ai_sim

#endif  // CLUSTER_TASK_SCHEDULER_TASK_GENERATOR_TASK_GENERATER_H_
